Interface Segregation Principle
ISP says clients should not be forced to depend on methods they do not use. A fat interface combines unrelated capabilities and forces implementations to provide meaningless methods, often resulting in empty implementations or UnsupportedOperationException. I prefer small, cohesive interfaces organized around client needs rather than one large interface representing an entire subsystem.
Keep interfaces cohesive and client-focused.
Avoid forcing implementations to support irrelevant operations.
Smaller interfaces improve mocking and testing.
ISP reduces accidental coupling between unrelated capabilities.
Do not split interfaces so aggressively that the design becomes fragmented and difficult to understand.